//#include "zf_common_headfile.h"
//#pragma section all "cpu0_dsram"
// 将本语句与#pragma section all restore语句之间的全局变量都放在CPU0的RAM中

// 本例程是开源库空工程 可用作移植或者测试各类内外设
// 本例程是开源库空工程 可用作移植或者测试各类内外设
// 本例程是开源库空工程 可用作移植或者测试各类内外设

// **************************** 代码区域 ******************************
/*#define LED1                    (P20_9)
#define LED2                    (P20_8)
#define LED3                    (P21_5)
#define LED4                    (P21_4)

#define KEY1                    (P20_6)
#define KEY2                    (P20_7)
#define KEY3                    (P11_2)
#define KEY4                    (P11_3)

#define SWITCH1                 (P33_11)
#define SWITCH2                 (P33_12)

char delay_time = 0;
int led_state = 0,flag=0;
int core0_main(void)
{
    clock_init();                   // 获取时钟频率<务必保留>
    debug_init();                   // 初始化默认调试串口
    // 此处编写用户代码 例如外设初始化代码等
    gpio_init(LED1,GPO,GPIO_HIGH,GPO_PUSH_PULL);
    gpio_init(LED2,GPO,GPIO_HIGH,GPO_PUSH_PULL);
    gpio_init(LED3,GPO,GPIO_HIGH,GPO_PUSH_PULL);
    gpio_init(LED4,GPO,GPIO_HIGH,GPO_PUSH_PULL);

    gpio_init(KEY1, GPI, GPIO_HIGH, GPI_PULL_UP);           // 初始化 KEY1 输入 默认高电平 上拉输入
    gpio_init(KEY2, GPI, GPIO_HIGH, GPI_PULL_UP);           // 初始化 KEY2 输入 默认高电平 上拉输入
    gpio_init(KEY3, GPI, GPIO_HIGH, GPI_PULL_UP);           // 初始化 KEY3 输入 默认高电平 上拉输入
    gpio_init(KEY4, GPI, GPIO_HIGH, GPI_PULL_UP);           // 初始化 KEY4 输入 默认高电平 上拉输入

    gpio_init(SWITCH1, GPI, GPIO_HIGH, GPI_PULL_UP);        // 初始化 SWITCH1 输入 默认高电平 上拉输入
    gpio_init(SWITCH2, GPI, GPIO_HIGH, GPI_PULL_UP);        // 初始化 SWITCH2 输入 默认高电平 上拉输入

    // 此处编写用户代码 例如外设初始化代码等
    cpu_wait_event_ready();         // 等待所有核心初始化完毕
    while (TRUE)
    {
        // 此处编写需要循环执行的代码
    
        delay_time = 300;
        if(gpio_get_level(SWITCH1)) delay_time /= 2;    // 拨码控制速度
        if(gpio_get_level(SWITCH2)) delay_time /= 2;

        if( gpio_get_level(KEY1)==0)  
        {
            system_delay_ms(20);
            while(gpio_get_level(KEY1)==0);  //跳过按键震荡
            system_delay_ms(20);
            static flag=0;
        }
        
        if( gpio_get_level(KEY2)==0)  
        {
            system_delay_ms(20);
            while(gpio_get_level(KEY2)==0);  //跳过按键震荡
            system_delay_ms(20);
            static flag=1;
        }

        if( flag==0)         // 按键1向左，按键2向右
        {
            gpio_set_level(LED1, led_state); 
            system_delay_ms(delay_time);
            gpio_set_level(LED1, ~led_state);
            gpio_set_level(LED2, led_state);
            system_delay_ms(delay_time);
            gpio_set_level(LED2, ~led_state);
            gpio_set_level(LED3, led_state);
            system_delay_ms(delay_time);
            gpio_set_level(LED3, ~led_state);
            gpio_set_level(LED4, led_state);
           
        }

        else if(flag==1)
        {
            gpio_set_level(LED4, led_state); 
            system_delay_ms(delay_time);
            gpio_set_level(LED4, ~led_state);
            gpio_set_level(LED3, led_state);
            system_delay_ms(delay_time);
            gpio_set_level(LED3, ~led_state);
            gpio_set_level(LED2, led_state);
            system_delay_ms(delay_time);
            gpio_set_level(LED2, ~led_state);
            gpio_set_level(LED1, led_state);
        }
        // 此处编写需要循环执行的代码
    }
}

#pragma section all restore*/
// **************************** 代码区域 ****************************
